package Exercise;

/**
 * 有20个线程，需要同时启动。
 * 每个线程按0-19的序号打印，如第一个线程需要打印0
 * 请设计代码，在main主线程中，等待所有子线程执行完后，再打印 ok

 */

public class demo3 {
    private static volatile int i=0;

    synchronized private static int getI(){
        return i++;
    }
    public static void main(String[] args) throws InterruptedException {
        Thread[] threads=new Thread[20];
        for(int i=0;i<20;i++){
            Thread t=new Thread(()->{
                System.out.println(getI());
            });
            threads[i]=t;
        }

        for(int i=0;i<threads.length;i++){
            threads[i].start();
        }

        for(int i=0;i<threads.length;i++){
            threads[i].join();
        }

        System.out.println("ok");

    }
}
